home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / yahoo / login.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  3KB  |  83 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import urllib2
  5. import cookielib
  6. import string
  7. from array import array
  8. from util import to_hex, UrlQuery, GetDefaultHandlers
  9. from struct import pack, unpack
  10. from array import array
  11. import logging
  12. from yahoo.yahooutil import YahooLoginError
  13. alphabet1 = 'FBZDWAGHrJTLMNOPpRSKUVEXYChImkwQ'
  14. alphabet2 = 'F0E1D2C3B4A59687abcdefghijklmnop'
  15. delimit_lookup = ',;'
  16. log = logging.getLogger('yahoo.login')
  17.  
  18. class YahooRateLimitException(Exception):
  19.     pass
  20.  
  21.  
  22. class YahooAuthException(Exception):
  23.     pass
  24.  
  25.  
  26. def yahoo_v15_auth(challenge, password, username):
  27.     jar = cookielib.CookieJar()
  28.     http_opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar), *GetDefaultHandlers())
  29.     time = time
  30.     import time
  31.     now = int(time())
  32.     url_password = UrlQuery('https://login.yahoo.com/config/pwtoken_get', src = 'ymsgr', ts = str(now), login = username, passwd = password, chal = challenge)
  33.     resp = http_opener.open(url_password)
  34.     resp = resp.read()
  35.     log.info('Yahoo response starts: %r', resp[:100])
  36.     if resp.startswith('1236'):
  37.         raise YahooRateLimitException(resp)
  38.     
  39.     if resp.startswith('1212'):
  40.         raise YahooAuthException(resp)
  41.     
  42.     if resp.startswith('1235'):
  43.         raise YahooAuthException(resp)
  44.     
  45.     foundurl = True
  46.     if resp.startswith('1221'):
  47.         foundurl = True
  48.     
  49.     token = resp.split('\r\n')[1].split('=')[1]
  50.     if foundurl:
  51.         pass
  52.     
  53.     url2 = UrlQuery('https://login.yahoo.com/config/pwtoken_login', src = 'ymsgr', ts = str(now), token = token)
  54.     resp2 = http_opener.open(url2)
  55.     resp2 = resp2.read()
  56.     log.info('Yahoo response2 starts: %r', resp2[:100])
  57.     lines = resp2.split('\r\n')
  58.     crumb = lines[1].split('=')[1]
  59.     y = lines[2]
  60.     t = lines[3]
  61.     y = y[2:]
  62.     t = t[2:]
  63.     return (crumb, y, t, jar)
  64.  
  65. _Y64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._'
  66.  
  67. def yahoo64(buffer):
  68.     limit = len(buffer) - len(buffer) % 3
  69.     b = []([], [ ord(ch) & 255 for ch in buffer ])
  70.     out = ''
  71.     for i in range(0, limit, 3):
  72.         out += _Y64[b[i] >> 2] + _Y64[b[i] << 4 & 48 | b[i + 1] >> 4] + _Y64[b[i + 1] << 2 & 60 | b[i + 2] >> 6] + _Y64[b[i + 2] & 63]
  73.     
  74.     i = limit
  75.     s = len(b) % 3
  76.     if s == 1:
  77.         out += _Y64[b[i] >> 2] + _Y64[b[i] << 4 & 48] + '--'
  78.     elif s == 2:
  79.         out += _Y64[b[i] >> 2] + _Y64[b[i] << 4 & 48 | b[i + 1] >> 4] + _Y64[b[i + 1] << 2 & 60] + '-'
  80.     
  81.     return out
  82.  
  83.